[INFO] cloning repository https://github.com/Plenglin/traash
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Plenglin/traash" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPlenglin%2Ftraash", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPlenglin%2Ftraash'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9cd2d39e7e5d6ebe68ae2c4c02cb0b45c0b8cb2f
[INFO] checking Plenglin/traash against master#e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682 for beta-170-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPlenglin%2Ftraash" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Plenglin/traash on toolchain e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Plenglin/traash
[INFO] finished tweaking git repo https://github.com/Plenglin/traash
[INFO] tweaked toml for git repo https://github.com/Plenglin/traash written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/Plenglin/traash already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: build
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9ede73b602cd4433732970934f6831d0b3cb67253fe6bbb6c534e1eb9f9b6c4c
[INFO] running `Command { std: "docker" "start" "-a" "9ede73b602cd4433732970934f6831d0b3cb67253fe6bbb6c534e1eb9f9b6c4c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9ede73b602cd4433732970934f6831d0b3cb67253fe6bbb6c534e1eb9f9b6c4c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9ede73b602cd4433732970934f6831d0b3cb67253fe6bbb6c534e1eb9f9b6c4c", kill_on_drop: false }`
[INFO] [stdout] 9ede73b602cd4433732970934f6831d0b3cb67253fe6bbb6c534e1eb9f9b6c4c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 873289b90811ee92613c63bda68bcfcf013ba013ae609dcce33f3cb5bf5a2e2b
[INFO] running `Command { std: "docker" "start" "-a" "873289b90811ee92613c63bda68bcfcf013ba013ae609dcce33f3cb5bf5a2e2b", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: build
[INFO] [stderr]    Compiling proc-macro2 v1.0.24
[INFO] [stderr]    Compiling memchr v2.3.4
[INFO] [stderr]    Compiling unicode-xid v0.2.1
[INFO] [stderr]    Compiling libc v0.2.85
[INFO] [stderr]    Compiling syn v1.0.60
[INFO] [stderr]     Checking once_cell v1.5.2
[INFO] [stderr]     Checking regex-syntax v0.6.22
[INFO] [stderr]     Checking predicates-core v1.0.2
[INFO] [stderr]     Checking difference v2.0.0
[INFO] [stderr]     Checking treeline v0.1.0
[INFO] [stderr]     Checking normalize-line-endings v0.3.0
[INFO] [stderr]     Checking fragile v1.0.0
[INFO] [stderr]     Checking downcast v0.10.0
[INFO] [stderr]     Checking float-cmp v0.8.0
[INFO] [stderr]     Checking thread_local v1.1.2
[INFO] [stderr]     Checking predicates-tree v1.0.2
[INFO] [stderr]     Checking aho-corasick v0.7.15
[INFO] [stderr]    Compiling quote v1.0.8
[INFO] [stderr]     Checking nix v0.19.1
[INFO] [stderr]     Checking regex v1.4.3
[INFO] [stderr]     Checking predicates v1.0.7
[INFO] [stderr]     Checking traash v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::ast::Command::Single`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::ast::Command::Single;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CStr`
[INFO] [stdout]  --> src/executor.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ffi::{CStr, CString, NulError};
[INFO] [stdout]   |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SIGKILL`
[INFO] [stdout]  --> src/executor.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use nix::sys::signal::Signal::{SIGKILL, SIGTERM};
[INFO] [stdout]   |                                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Signal`
[INFO] [stdout]  --> src/executor.rs:6:30
[INFO] [stdout]   |
[INFO] [stdout] 6 | use nix::sys::signal::{kill, Signal};
[INFO] [stdout]   |                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dup2`
[INFO] [stdout]  --> src/executor.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nix::unistd::{dup2, execv, fork, pipe, ForkResult, Pid};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ast::BinaryOp::LogAnd`
[INFO] [stdout]  --> src/parser.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::ast::BinaryOp::LogAnd;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fork`, `log_and`, `sequential`, `single`
[INFO] [stdout]  --> src/parser.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::ast::{binary, fork, log_and, sequential, single, BinaryOp, Command, SingleCommand};
[INFO] [stdout]   |                          ^^^^  ^^^^^^^  ^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lexer::lex`
[INFO] [stdout]  --> src/parser.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::lexer::lex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tokens::Token::Semicolon`
[INFO] [stdout]  --> src/parser.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::tokens::Token::Semicolon;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/executor.rs:112:21
[INFO] [stdout]     |
[INFO] [stdout] 112 |                     execv(path.as_c_str(), &[]);
[INFO] [stdout]     |                     ^^^^^ cannot infer type of the type parameter `S` declared on the function `execv`
[INFO] [stdout]     |
[INFO] [stdout] help: consider specifying the generic argument
[INFO] [stdout]     |
[INFO] [stdout] 112 |                     execv::<S>(path.as_c_str(), &[]);
[INFO] [stdout]     |                          +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0283]: type annotations needed
[INFO] [stdout]    --> src/executor.rs:112:21
[INFO] [stdout]     |
[INFO] [stdout] 112 |                     execv(path.as_c_str(), &[]);
[INFO] [stdout]     |                     ^^^^^                  --- type must be known at this point
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     cannot infer type of the type parameter `S` declared on the function `execv`
[INFO] [stdout]     |
[INFO] [stdout]     = note: multiple `impl`s satisfying `_: AsRef<CStr>` found in the following crates: `alloc`, `core`, `hashbrown`:
[INFO] [stdout]             - impl AsRef<CStr> for CStr;
[INFO] [stdout]             - impl AsRef<CStr> for CString;
[INFO] [stdout]             - impl<'a, K, Q> AsRef<Q> for hashbrown::map::KeyOrRef<'a, K, Q>
[INFO] [stdout]               where K: Borrow<Q>, Q: ?Sized;
[INFO] [stdout]             - impl<T, A> AsRef<T> for Box<T, A>
[INFO] [stdout]               where A: Allocator, T: ?Sized;
[INFO] [stdout]             - impl<T, U> AsRef<U> for &T
[INFO] [stdout]               where T: AsRef<U>, T: ?Sized, U: ?Sized;
[INFO] [stdout]             - impl<T, U> AsRef<U> for &mut T
[INFO] [stdout]               where T: AsRef<U>, T: ?Sized, U: ?Sized;
[INFO] [stdout]             - impl<T> AsRef<T> for Arc<T>
[INFO] [stdout]               where T: ?Sized;
[INFO] [stdout]             - impl<T> AsRef<T> for Cow<'_, T>
[INFO] [stdout]               where T: ToOwned, T: ?Sized;
[INFO] [stdout]             - impl<T> AsRef<T> for Rc<T>
[INFO] [stdout]               where T: ?Sized;
[INFO] [stdout] note: required by a bound in `nix::unistd::execv`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/nix-0.19.1/src/unistd.rs:730:17
[INFO] [stdout]     |
[INFO] [stdout] 730 | pub fn execv<S: AsRef<CStr>>(path: &CStr, argv: &[S]) -> Result<Infallible> {
[INFO] [stdout]     |                 ^^^^^^^^^^^ required by this bound in `execv`
[INFO] [stdout] help: consider specifying the generic argument
[INFO] [stdout]     |
[INFO] [stdout] 112 |                     execv::<S>(path.as_c_str(), &[]);
[INFO] [stdout]     |                          +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Option<Pid>: From<Process>` is not satisfied
[INFO] [stdout]    --> src/executor.rs:125:13
[INFO] [stdout]     |
[INFO] [stdout] 125 |     waitpid(p, WaitPidFlag::from_bits(WEXITED));
[INFO] [stdout]     |     ------- ^ the trait `From<Process>` is not implemented for `Option<Pid>`
[INFO] [stdout]     |     |
[INFO] [stdout]     |     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               <Option<&'a T> as From<&'a Option<T>>>
[INFO] [stdout]               <Option<&'a mut T> as From<&'a mut Option<T>>>
[INFO] [stdout]               <Option<T> as From<T>>
[INFO] [stdout]     = note: required for `Process` to implement `Into<Option<Pid>>`
[INFO] [stdout] note: required by a bound in `nix::sys::wait::waitpid`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/nix-0.19.1/src/sys/wait.rs:226:19
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn waitpid<P: Into<Option<Pid>>>(pid: P, options: Option<WaitPidFlag>) -> Result<WaitStatus> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^ required by this bound in `waitpid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/executor.rs:123:6
[INFO] [stdout]     |
[INFO] [stdout] 120 | unsafe fn execute_single(
[INFO] [stdout]     |           -------------- implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout] ...
[INFO] [stdout] 123 | ) -> Result<i32, ProcessSpawnError> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<i32, ProcessSpawnError>`, found `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected enum `Result<i32, ProcessSpawnError>`
[INFO] [stdout]             found unit type `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/executor.rs:133:16
[INFO] [stdout]     |
[INFO] [stdout] 133 |             Ok(execute(*binary.second, r))
[INFO] [stdout]     |             -- ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `i32`, found `()`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout] help: the type constructed contains `()` due to the type of the argument passed
[INFO] [stdout]    --> src/executor.rs:133:13
[INFO] [stdout]     |
[INFO] [stdout] 133 |             Ok(execute(*binary.second, r))
[INFO] [stdout]     |             ^^^--------------------------^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682/library/core/src/result.rs:506:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Option<Pid>: From<()>` is not satisfied
[INFO] [stdout]    --> src/executor.rs:137:21
[INFO] [stdout]     |
[INFO] [stdout] 137 |             waitpid(first, WaitPidFlag::from_bits(WEXITED));
[INFO] [stdout]     |             ------- ^^^^^ the trait `From<()>` is not implemented for `Option<Pid>`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               <Option<&'a T> as From<&'a Option<T>>>
[INFO] [stdout]               <Option<&'a mut T> as From<&'a mut Option<T>>>
[INFO] [stdout]               <Option<T> as From<T>>
[INFO] [stdout]     = note: required for `()` to implement `Into<Option<Pid>>`
[INFO] [stdout] note: required by a bound in `nix::sys::wait::waitpid`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/nix-0.19.1/src/sys/wait.rs:226:19
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn waitpid<P: Into<Option<Pid>>>(pid: P, options: Option<WaitPidFlag>) -> Result<WaitStatus> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^ required by this bound in `waitpid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `clone` found for struct `StreamSet` in the current scope
[INFO] [stdout]    --> src/executor.rs:138:58
[INFO] [stdout]     |
[INFO] [stdout] 13  | pub struct StreamSet {
[INFO] [stdout]     | -------------------- method `clone` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 138 |             let second = execute(*binary.second, streams.clone());
[INFO] [stdout]     |                                                          ^^^^^ method not found in `StreamSet`
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following trait defines an item `clone`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `Clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Option<Pid>: From<()>` is not satisfied
[INFO] [stdout]    --> src/executor.rs:139:21
[INFO] [stdout]     |
[INFO] [stdout] 139 |             waitpid(second, WaitPidFlag::from_bits(WEXITED));
[INFO] [stdout]     |             ------- ^^^^^^ the trait `From<()>` is not implemented for `Option<Pid>`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               <Option<&'a T> as From<&'a Option<T>>>
[INFO] [stdout]               <Option<&'a mut T> as From<&'a mut Option<T>>>
[INFO] [stdout]               <Option<T> as From<T>>
[INFO] [stdout]     = note: required for `()` to implement `Into<Option<Pid>>`
[INFO] [stdout] note: required by a bound in `nix::sys::wait::waitpid`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/nix-0.19.1/src/sys/wait.rs:226:19
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn waitpid<P: Into<Option<Pid>>>(pid: P, options: Option<WaitPidFlag>) -> Result<WaitStatus> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^ required by this bound in `waitpid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/executor.rs:135:26
[INFO] [stdout]     |
[INFO] [stdout] 135 |           BinaryOp::Seq => {
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 136 | |             let first = execute(*binary.first, streams);
[INFO] [stdout] 137 | |             waitpid(first, WaitPidFlag::from_bits(WEXITED));
[INFO] [stdout] 138 | |             let second = execute(*binary.second, streams.clone());
[INFO] [stdout] 139 | |             waitpid(second, WaitPidFlag::from_bits(WEXITED));
[INFO] [stdout] 140 | |         }
[INFO] [stdout]     | |_________^ expected `Result<i32, ProcessSpawnError>`, found `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected enum `Result<i32, ProcessSpawnError>`
[INFO] [stdout]             found unit type `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Option<Pid>: From<()>` is not satisfied
[INFO] [stdout]    --> src/executor.rs:145:21
[INFO] [stdout]     |
[INFO] [stdout] 145 |             waitpid(second, WaitPidFlag::from_bits(WEXITED));
[INFO] [stdout]     |             ------- ^^^^^^ the trait `From<()>` is not implemented for `Option<Pid>`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               <Option<&'a T> as From<&'a Option<T>>>
[INFO] [stdout]               <Option<&'a mut T> as From<&'a mut Option<T>>>
[INFO] [stdout]               <Option<T> as From<T>>
[INFO] [stdout]     = note: required for `()` to implement `Into<Option<Pid>>`
[INFO] [stdout] note: required by a bound in `nix::sys::wait::waitpid`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/nix-0.19.1/src/sys/wait.rs:226:19
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn waitpid<P: Into<Option<Pid>>>(pid: P, options: Option<WaitPidFlag>) -> Result<WaitStatus> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^ required by this bound in `waitpid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/executor.rs:141:27
[INFO] [stdout]     |
[INFO] [stdout] 141 |           BinaryOp::Pipe => {
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 142 | |             let (left, right) = streams.pipe();
[INFO] [stdout] 143 | |             let first = execute(*binary.first, left);
[INFO] [stdout] 144 | |             let second = execute(*binary.second, right);
[INFO] [stdout] 145 | |             waitpid(second, WaitPidFlag::from_bits(WEXITED));
[INFO] [stdout] 146 | |         }
[INFO] [stdout]     | |_________^ expected `Result<i32, ProcessSpawnError>`, found `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected enum `Result<i32, ProcessSpawnError>`
[INFO] [stdout]             found unit type `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/executor.rs:147:29
[INFO] [stdout]     |
[INFO] [stdout] 147 |         BinaryOp::LogAnd => {}
[INFO] [stdout]     |                             ^^ expected `Result<i32, ProcessSpawnError>`, found `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected enum `Result<i32, ProcessSpawnError>`
[INFO] [stdout]             found unit type `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/executor.rs:148:28
[INFO] [stdout]     |
[INFO] [stdout] 148 |         BinaryOp::LogOr => {}
[INFO] [stdout]     |                            ^^ expected `Result<i32, ProcessSpawnError>`, found `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected enum `Result<i32, ProcessSpawnError>`
[INFO] [stdout]             found unit type `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]    --> src/executor.rs:156:35
[INFO] [stdout]     |
[INFO] [stdout] 154 | /         match cmd {
[INFO] [stdout] 155 | |             Command::Nil => {}
[INFO] [stdout]     | |                             -- this is found to be of type `()`
[INFO] [stdout] 156 | |             Command::Single(c) => execute_single(c, streams),
[INFO] [stdout]     | |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `Result<i32, ProcessSpawnError>`
[INFO] [stdout] 157 | |             Command::BinaryExpr(c) => execute_binary(c, streams),
[INFO] [stdout] 158 | |             Command::FileInput(_) => {}
[INFO] [stdout] 159 | |             Command::FileOutput(_) => {}
[INFO] [stdout] 160 | |         }
[INFO] [stdout]     | |_________- `match` arms have incompatible types
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                     found enum `Result<i32, ProcessSpawnError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 14 previous errors; 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0282, E0283, E0308, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `traash` (bin "traash") due to 15 previous errors; 9 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "873289b90811ee92613c63bda68bcfcf013ba013ae609dcce33f3cb5bf5a2e2b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "873289b90811ee92613c63bda68bcfcf013ba013ae609dcce33f3cb5bf5a2e2b", kill_on_drop: false }`
[INFO] [stdout] 873289b90811ee92613c63bda68bcfcf013ba013ae609dcce33f3cb5bf5a2e2b
